home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 January - Disc 2
/
Macworld (1999-01) (Disk 2).dmg
/
Serious Demos
/
Symbolic Composer 4.2
/
Environment
/
Projects
/
Tutorial Material
/
Zone Tutorial
/
Structure Examples
/
6. Zoneinv
< prev
next >
Wrap
Lisp/Scheme
|
1998-10-26
|
3KB
|
95 lines
; Keyboard Invention #1
(setq f1 '(a b c d))
(setq f2 '(a (+2 b) c d b))
(setq f3 '(a (+2 b) (+1 d)))
(setq f4 '(a c (+1 d) (+1 b)))
(setq f5 '(a b (-2 c) b d e))
(setq f2v (gen-random-variate 0.4 0.001 0 1 '(a (+2 b) c d b)))
(setq f4v (gen-random-variate 0.5 0.001 0 1 '(a c (+1 d) (+1 b))))
(setq arp1 (gen-fibonacci 5 (list f1 f2) (list f3 f4 f5)))
(setq arp2 (gen-fibonacci 5 (list f1 f2v) (list f3 f4v f5)))
(setq links '((ab cd a-b = -cd)))
(setq r1 '(1/16 1/16 1/16 1/16 1/16))
(setq r2 '(1/16 1/16 1/16 1/8 1/16))
(setq r3 '(1/16 1/16 1/16 1/32 1/32 1/16))
(setq r4 '(1/8 1/32 1/32 1/32 1/32 1/16))
(setq r5 '(-1/16 1/16 1/8 1/32 1/32 1/32 1/32))
(setq r2r (reverse '(1/16 1/16 1/16 1/8 1/16)))
(setq r4r (reverse '(1/8 1/32 1/32 1/32 1/32 1/16)))
(setq linkr '((1/16 1/8 1/16 -1/32 1/32 1/32 1/32)))
(setq rhy1 (gen-fibonacci 5 (list r1 r2) (list r3 r4 r5)))
(setq rhy2 (gen-fibonacci 5 (list r1 r2r) (list r3 r4r r5)))
(setq v1 '(96 86 76 66 56))
(setq v2 '(98 88 78 68 58))
(setq v3 '(100 95 85 75 65 55))
(setq v4 '(95 65 70 75 80 55))
(setq v5 '(0 75 85 70 67 65 62))
(setq linkv '((80 65 75 0 45 50 55)))
(setq vel (gen-fibonacci 5 (list v1 v2) (list v3 v4 v5)))
(setq z1 (* 10 24)) ; 5/8
(setq z2 (+ 48 (* 4 24))) ; 3/8
(setq z3 (* 2 (+ 12 (* 4 24)))) ; 9/16
(setq z4 (* 3 (+ 48 16 (* 4 12)))) ; 7/8
(setq z5 (* 4 96)) ; 4/4
(setq linkz '(480))
(setq zone1 (gen-fibonacci 5 (list z1 z2) (list z3 z4 z5)))
(setq zone2 (gen-fibonacci 5 (list z1 z2 z3) (list z4 z5)))
(def-symbol
kybrd (append arp1 links arp2)
)
(def-length
kybrd (append rhy1 linkr rhy2)
)
(def-velocity
kybrd (append vel linkv vel)
)
(def-zone
kybrd (append zone1 linkz zone2)
)
(setq link (activate-tonality (f maj 7#11 1 4)))
(setq tonal (activate-tonality (c min 7 1 4) (c min 9 1 4) (c min 6-9 1 4)
(c min 7&9 1 4) (c min maj7 1 4)))
(setq tonal1 (activate-tonality (c min 7 1 4) (c min 9 1 4) (c min 6-9 1 4)
(c min 7&9 1 4) (c min maj7 1 4)
(f maj maj7 5 4)))
(def-tonality
kybrd (append tonal tonal tonal tonal tonal tonal1 link
tonal tonal tonal tonal tonal tonal)
)
(compile-instrument-p "ccl;output:" "zoneinv"
kybrd
)
#|
This invention demonstrates how the zone support function can be used to
structure an extended piece in ternary form.
It's built entirely from '(a b c d) which is then varied with symbol
transposition. Each symbol pattern has a corresponding rhythm variant.
Sections A and C are developed by fibonacci generation of symbol melody,
note length, dynamics and zone.
Note the use of the lisp function (list to maintain the list structure to
enable the zone support function operate. Can you think why the link section
has to be a nested list?
|#